package hcn.protocol.brandnew.feiyong.feiyongqingdan;

import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import lombok.Data;

import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.util.Date;
import java.util.List;


/**
 * 门诊费用列表查询-响应消息(成功) - ODS_04030001_SUC
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class ListOutpatientExpensesResponse {

    /**
     * 门诊费用列表集合
     */
    @XmlElementWrapper(name = "Records")
    @XmlElement(name = "Record")
    private List<Record> records;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class Record {

        /**
         * 就诊医疗机构组织机构代码
         */
        @XmlElement(name = "VisitOrganization")
        private String visitOrganization;
        /**
         * 就诊机构名称
         */
        @XmlElement(name = "VisitOrganizationName")
        private String visitOrganizationName;
        /**
         * 患者ID
         */
        @XmlElement(name = "SourcePatientId")
        private String sourcePatientId;
        /**
         * 费用日期
         */
        @XmlElement(name = "CostDate")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date costDate;
        /**
         * 支付状态
         */
        @XmlElement(name = "PayStatus")
        private String payStatus;
        /**
         * 预结算标识
         */
        @XmlElement(name = "PaymentNumber")
        private String paymentNumber;
        /**
         * 打印状态
         */
        @XmlElement(name = "InvoiceStatus")
        private String invoiceStatus;
        /**
         * 总计金额
         */
        @XmlElement(name = "TotalCost")
        private String totalCost;
        /**
         * 医保报销总额
         */
        @XmlElement(name = "MedicalExpensesCost")
        private String medicalExpensesCost;
        /**
         * 自负金额
         */
        @XmlElement(name = "SelfCost")
        private String selfCost;
        /**
         * 备注信息
         */
        @XmlElement(name = "Remark")
        private String remark;
        /**
         * 发票号码
         */
        @XmlElement(name = "InvoiceCode")
        private String invoiceCode;
    }

}
